<?php
	class ReportePdf extends sfTCPDF
	{
		private $titulo; 
		private $empresa;
		private $fechaConsulta;	
		private $ImprimiendoFinalTable = false ;
		private $ImprimiendoFancyTable = false ;
		private $titulos = false;
		private $dimensiones = false;
		private $rgbfancytable = false;
		private $logo = false;
		private $docnumero = false;
		private $tablatitulofont = 10;
		private $tablacuerpofont = 8;

		public function getTitulo()
		{
			return($this->titulo); 
		}

		public function setTablaTituloFont($tablatitulofont)
		{
			$this->tablatitulofont = $tablatitulofont;
		}

		public function setTablaCuerpoFont($tablacuerpofont)
		{
			$this->tablacuerpofont = $tablacuerpofont;
		}

		public function setRgbFancyTable($RGB)
		{
			$this->rgbfancytable = $RGB;
		}

		public function setDimensiones($dimensiones)
		{
			$this->dimensiones = $dimensiones;
		}

		public function setTitulos($titulos)
		{
			$this->titulos = $titulos;
		}

		public function setTitulo($titulo)
		{
			$this->titulo = $titulo;
		}

		public function getEmpresa()
		{
			return($this->empresa); 
		}

		public function setEmpresa($empresa)
		{
			$this->empresa = $empresa;
		}

		public function setFechaConsulta($fecha)
		{
			$this->fechaConsulta = $fecha;
		}

		public function setLogo($logo)
		{
			$this->logo = $logo;
		}

		public function setDocNumero($docnumero)
		{
			$this->docnumero = $docnumero;
		}

		public function header()
		{
			//$dir_image = '../../../imagenes/';
			//Logo
			//$this->Image($dir_image.'logo_empresa.jpg',10,8);
			//Movernos a la derecha
			if ($this->logo)
			{
				$dir_image = sfconfig::get('sf_web_dir').$this->logo;
				//echo $dir_image;
				$this->Image($dir_image,10,5,35,35);
			}

			if ($this->docnumero)
			{
				$this->Ln();
				$this->SetY(15);
				$this->SetFont('','I',10);
				$this->Cell(0,5,"Documento: ".$this->docnumero,0,0,'R');
			}

			if ($this->fechaConsulta)
			{
				$this->Ln();
				$this->SetY(20);
				$this->SetFont('','I',8);
				$this->Cell(0,5,"Fecha de consulta: ".$this->fechaConsulta,0,0,'R');
			}

			if ($this->titulo)
			{
				$this->SetFont('','B',14);
				$this->SetY(30);
				$this->SetX(70);
				$this->Cell(80,5,$this->titulo,'B',0,'C');
				
			}
			$this->Ln();
			$this->SetY(40);
		}
		
		//Pie de p?ina
		public function footer()
		{
			if($this->empresa)
			{
				$this->SetY(-15);
				$this->SetFont('','I',8);
				$this->Cell(0,10,$this->empresa,0,0,'L');
			}
			$this->SetY(-15);
			$this->Cell(0,10,'Pagina '.$this->PageNo().'/ {nb} ',0,0,'C');
		}

		public function acceptPageBreak()
		{
			//M?odo que acepta o no el salto autom?ico de p?ina
			$y = $this->GetY();
			$pagina = $this->PageNo();
			//echo "<br/> $y --- $pagina ";
			$continuar = false;
			if ($this->ImprimiendoFancyTable)
			{
				//$this->SetAutoPageBreak(false);
				if ($y >= 277)
				{
					$this->SetXY(5,276);
				}
				$y = $this->GetY();
				//echo " -- $y";
				$w = $this->dimensiones;
				for($i=0;$i<count($w);$i++)
					$total += $w[$i][0];
				
				$this->Cell($total,0,'','T');
				//$this->SetAutoPageBreak(true);
				$continuar = true;	
			}
			$this-> AddPage();
			if ($continuar)
				$this->CabeceraFancytable(20, $this->GetY());
			return ($continuar);
		}
				
		public function cabeceraFancyTable($x, $y)
		{
			//$header=array('Codigo','Concepto','Devengos','Deducido');
			$w = $this->dimensiones;
			$header = $this->titulos;
			$this->SetFillColor($this->rgbfancytable[0],$this->rgbfancytable[1],$this->rgbfancytable[2]);
			$this->SetTextColor(0,50,255);
			$this->SetDrawColor(0,0,0);
			$this->SetLineWidth(.3);
			$this->SetFont('','',$this->tablatitulofont);
			//Cabecera
			$this->SetXY($x,$y);
			for($i=0;$i<count($header);$i++)
				$this->Cell($w[$i][0],5,$header[$i],1,0,'C',1);
			$this->Ln();
			$this->SetX($x);
			//Restauraci? de colores y fuentes
			$this->SetFillColor(224,235,255);
			$this->SetTextColor(0);
			$this->SetFont('');
		}
		
		public function fancyTable($data, $x, $y)
		{
			//Colores, ancho de l?ea y fuente en negrita
			$this->ImprimiendoFancyTable = true;
			$w=$this->dimensiones;
			$this->CabeceraFancyTable($x, $y);
			//Datos
			$this->SetFont('','',$this->tablacuerpofont);
			$fill=0;
			$alto = 4;
			//var_dump ($data);
			foreach($data as $row)
			{
				$r = 0;
				foreach($row as $dato)//var_dump($row);
				{
					$this->Cell($w[$r][0],$alto,$dato,'LR',0,$w[$r][1],$fill);
				$r++;
				}
				$this->Ln();
				$this->SetX($x);
				$fill=!$fill;
			}
			$total = 0;
			for($i=0;$i<count($w);$i++)
					$total += $w[$i][0];
			$this->Cell($total,0,'','T'); 
			$this->ImprimiendoFancyTable = false; 
		}
	}
?>